class Player extends egret.Sprite {
	// 玩家属性
	public name: string;
	// 是否是地主
	public isLandlord: boolean = false;
	// 是否是AI玩家
	public isAI: boolean = true;
	// 牌组
	public cardList = [];
	// 下一家
	public nextPlayer = null;
	// 我的手牌 (cardList存放的是数据,myCardsObj存放的是bitmap)
	public myCardsObj: Array<Card> = [];
	// 我上一轮打出去的牌
	public myPrevPlayCardsObj: Array<Card> = [];

	// 抢地主 叫分提示
	public robLanText: egret.TextField;
	// 玩家头像
	public portrait: egret.Bitmap;
	// 定义牌型
	// 单张
	public one = [];
	// 对子
	public pairs = [];
	// 王炸
	public kingBomb = [];
	// 炸弹
	public bomb = [];
	// 三张
	public three = [];
	// 飞机
	public plane = [];
	// 顺子
	public progression = [];
	// 三带2
	public progressionPairs = [];





	public constructor(name = "Player", isAI, x, y, w, h) {
		super();
		this.name = name;
		this.isAI = isAI;
		// this.graphics.beginFill(0x00ff00);
		this.graphics.drawRect(x, y, w, h);
		this.graphics.endFill();
		// 初始化页面
		this.init(name);
	}
	private init(name) {
		// 抢地主提示分数
		this.robLanText = new egret.TextField();
		this.addChild(this.robLanText);
		// 头像
		this.portrait = new egret.Bitmap();
		this.addChild(this.portrait);
		this.portrait.width = 50;
		this.portrait.height = 50;

		if (name == Data.playerNameArr[0]) {
			// 左侧玩家
			this.robLanText.x = Data.getStageW() / 2 - 646 / 2;
			this.robLanText.y = Data.getStageH() / 2 - 71 - 223 / 2;
			this.portrait.x = 160;
			this.portrait.y = 80;
		} else if (name == Data.playerNameArr[1]) {
			this.robLanText.x = -90;
			this.robLanText.y = Data.getStageH() / 2 - 71 - 223 / 2;
			// 右侧	
			this.portrait.x = 0;
			this.portrait.y = 80;
		} else if (name == Data.playerNameArr[2]) {
			// 我的手牌
			this.robLanText.x = Data.getStageW() / 2;
			this.robLanText.y = Data.getStageH() / 2 - 71 + 223 / 3;
			this.portrait.x = 160;
			this.portrait.y = Data.getStageH() - 120
		}
	}

	// 增加一张牌
	public insertOneCard(index) {
		var bitMap = new Card();
		bitMap.width = 70;
		bitMap.height = 100;
		this.addChild(bitMap);
		// 添加到玩家的myCardsObj
		this.myCardsObj.push(bitMap);
		if (this.name == Data.playerNameArr[0]) {
			bitMap.y = 60 + index * 20;
			bitMap.x = 30;
			// 左侧玩家
		} else if (this.name == Data.playerNameArr[1]) {
			// 右侧玩家
			bitMap.y = 60 + index * 20;
			this.addChild(bitMap);
			bitMap.x = 110;
		} else if (this.name == Data.playerNameArr[2]) {
			bitMap.width = 105;
			bitMap.height = 150;
			// 我的玩家
			bitMap.texture = RES.getRes(this.cardList[index - 1].icon.split('.')[0]);
			// 把牌组显示信息显示的传递给我的玩家
			bitMap.info = this.cardList[index - 1];
			this.myCardsObj.sort(function (a, b) {
				var va = parseInt(a.info.val);
				var vb = parseInt(b.info.val);
				if (va === vb) {
					return a.info.type > b.info.type ? 1 : -1;
				} else if (va > vb) {
					return -1;
				} else {
					return 1;
				}
			})
			bitMap.y = Data.getStageH() - 220;
			var l = this.myCardsObj.length;
			// 先计算当前牌的总宽度
			var currentL = 30 * l + 70;
			for (var i: number = 0; i < l; i++) {
				// 然后再计算每张牌的位置
				var obj = this.myCardsObj[i];
				obj.x = (Data.getStageW() / 2 - currentL / 2) + 30 * i;
				this.setChildIndex(obj, i);
			}
			// 给牌面添加点击事件
			bitMap.start();
		}
	}
}